我刚刚开始学习Git,有些事情我无法解决。在我的Mac上本地创建和使用git存储库后,我可以将副本推送到其他地方的另一台服务器吗?我在防火墙后面,所以不幸的是我无法从另一台机器运行gitclone。 最佳答案 gitremoteaddnameurlgitpush名称分支例子:gitremoteaddorigingit@github.com:foo/bar.gitgitpushoriginmaster请参阅gitpush的文档——您可以将远程设置为给定分支的默认远程;如果不这样做,名称origin是特殊的。仅gitpush就可以完成与
这个问题在这里已经有了答案:Git:Setupafetch-onlyremote?(5个答案)关闭7年前。我正在使用git并且正在做我的开发工作,我不想推送,即使是错误的。有没有一种方法可以禁用某些本地存储库中的推送。一种方法是重命名分支,另一种是undopush如果有人误操作了,但我希望应该有更直接的方法。
我正在处理本地git存储库。有两个分支,master和feature_x。我想将feature_x推送到远程仓库,但我不想将更改推送到master分支。来self的feature_x分支(feature_x分支已经存在于远程)的gitpushoriginfeature_x是否有效?我不想在我的盒子上测试这个,因为我现在不能推送到master。 最佳答案 是的,只需执行以下操作gitcheckoutfeature_xgitpushoriginfeature_x 关于git-你如何只推送一个
我是github上一个组织的所有者,我刚刚创建了一个repo并尝试推送,但我遇到了一个问题,它要求我提供我的用户名,即使我可以正常使用SSH:$ssh-Tgit@github.comHiCelc!You'vesuccessfullyauthenticated,butGitHubdoesnotprovideshellaccess.$gitadd.$gitcommit-m'firstcommit'[master(root-commit)3f1b963]firstcommit6fileschanged,59insertions(+)createmode100644.gitignorecrea
我在使用git和github时遇到了一个非常奇怪的问题。当我尝试push时,我得到:gitpush-uoriginmasterERROR:Repositorynotfound.fatal:Theremoteendhungupunexpectedly我添加了Remote:gitremoteaddorigingit@github.com:account-name/repo-name.git有什么想法吗? 最佳答案 检查您是否具有读写权限。Git错误消息具有误导性。我有一个类似的问题。我已被添加到现有项目中。我克隆了它并提交了本地更改。我
有没有快捷方式告诉Git将当前跟踪分支推送到origin?注意:我知道我可以更改defaultpushbehavior,但我正在寻找不会更改默认行为的临时解决方案。例如,假设我在分支feature/123-sandbox-tests我会使用gitpushoriginfeature/123-sandbox-tests这很乏味。我正在寻找捷径,比如gitpushorigincurrent#其中git知道当前是feature/123-sandbox-tests。编辑:从2.0版本开始,git的默认行为已经变成了更直观的行为,这正是我想要实现的。参见ThisSOquestion了解详情。编辑2
我做了一些工作(“你的分支比‘origin/master’领先37次提交。”)这真的应该进入它自己的分支而不是进入master.这些提交只存在于我的本地机器上,并没有被推送到origin,但情况有点复杂,因为其他开发人员一直在推送到origin/master而我已经取消了这些更改。如何将我的37个本地提交追溯移动到新分支?根据文档,似乎gitrebase--ontomy-new-branchmaster或...origin/master应该这样做,但两者都给我错误“致命:需要一次修订”。mangit-rebase没有提到提供对rebase的修订,它的示例也没有这样做,所以我不知道如何解
有没有办法恢复提交,以便我的本地副本保留在该提交中所做的更改,但它们在我的工作副本中变成未提交的更改?回滚提交会将您带到之前的提交-我想保留所做的更改,但我将它们提交到错误的分支。这还没有被推送,只是被提交了。 最佳答案 有很多方法可以做到,例如:如果您没有公开推送提交:gitresetHEAD~1--soft就是这样,您的提交更改将在您的工作目录中,而最后一次提交将从您当前的分支中删除。参见gitresetman如果您确实公开推送(在名为“master”的分支上):gitcheckout-bMyCommit//saveyourco
撤消特定提交的最简单方法是:不在头部或头部已推送到远程。因为如果不是最新的提交,gitresetHEAD没用。并且因为它已经被推送到远程,gitrebase-i和gitrebase--onto会导致Remote出现问题。更何况,我真的不想修改历史。如果有错误的代码,它就存在于历史中并且可以被看到。我只是想把它放在工作副本中,我不介意反向merge提交。换句话说,Git是什么?等效于以下svn命令:svnmerge-r303:295http://svn.example.com/repos/calc/trunk通过反向merge这些修订中的所有更改,将所有更改从295删除到302,作为新提
gitrevert一个人是行不通的。显然,-m必须指定。 最佳答案 在gitrevert-m中,-m选项指定了parentnumber。这是必需的,因为merge提交有多个父级,并且Git不会自动知道哪个父级是主线,哪个父级是您要取消merge的分支。当您在gitlog的输出中查看merge提交时,您会看到它的父项列在以Merge开头的行中:commit8f937c683929b08379097828c8a04350b9b8e183Merge:8989ee07c6b236Author:BenJamesDate:WedAug1722: